今天來學習如何讀取網路上以及下載到電腦的json檔。
json是一種輕量的數據交換格式,簡化了資料表示方式,以左右大括弧作為欄位:{" a " : " b "}
網際網路讀取
網址:https://data.ntpc.gov.tw/api/datasets/61C99F42-8A90-4ADC-9C40-BA9E0EA097AA/json?page=0&size=1000
import requests
import json
# 讀取JSON數據的URL
json_url = "https://data.ntpc.gov.tw/api/datasets/61C99F42-8A90-4ADC-9C40-BA9E0EA097AA/json?page=0&size=1000"
try:
# 使用requests取得JSON數據
response = requests.get(json_url)
# 檢查響應的狀態碼
if response.status_code == 200:
# 使用json.loads函數讀取JSON數據
json_data = json.loads(response.text)
modified_json_data = []
for item in json_data:
#將原資料由英文改為中文
modified_item = {
"名稱": item["name"],
"地址": item["address"],
"電話": item["tel"],
"廳數": item["number"]
}
modified_json_data.append(modified_item)
print(modified_json_data)
else:
print("無法獲取JSON數據,狀態碼:", response.status_code)
except requests.exceptions.RequestException as e:
print("發生錯誤:", e)
[{'名稱': '天台戲院股份有限公司', '地址': '新北市三重區重新路2段78號4樓', '電話': '2978-7700', '廳數': '5'}, {'名稱': '鴻金寶麻吉戲院(萬念福開發事業股份有限公司)', '地址': '新北市新莊區民安路188巷5號4樓', '電話': '2207-0222', '廳數': '5'}, {'名稱': '威秀影城股份有限公司中和環球分公司', '地址': '新北市中和區中山路3段122號4樓', '電話': '8226-6063', '廳數': '10'}, {'名稱': '威秀影城股份有限公司板橋分公司', '地址': '新北市板橋區新站路28號10樓', '電話': '7738-6608', '廳數': '9'}, {'名稱': '板橋秀泰影城股份有限公司', '地址': '新北市板橋區縣民大道二段3號2~4樓', '電話': '2968-5588', '廳數': '17'}, {'名稱': '國賓影城股份有限公司林口分公司', '地址': '新北市林口區文化三路一段402巷2號4樓', '電話': '2608-0011', '廳數': '8'}, {'名稱': '國賓影城股份有限公司新莊分公司', '地址': '新北市新莊區五工路66號3、4樓(晶冠廣場)', '電話': '8521-6517', '廳數': '13'}, {'名稱': '威秀影城股份有限公司新北林口分公司', '地址': '新北市林口區文化三路一段356號3樓、4樓', '電話': '2606-8099', '廳數': '9'}, {'名稱': '樹林秀泰影城股份有限公司', '地址': '新北市樹林區樹新路40之6號', '電話': '2686-8769', '廳數': '12'}, {'名稱': '土城秀泰影城股份有限公司', '地址': '新北市土城區學府路2段210號1樓', '電話': '2260-3398', '廳數': '11'}, {'名稱': '美麗新娛樂股份有限公司淡海分公司', '地址': '新北市淡水區義山路2段303號2~4樓', '電話': '7705-0899', '廳數': '9'}, {'名稱': '喜樂時代影城股份有限公司永和分公司', '地址': '新北市永和區中山路1段238號4樓', '電話': '8231-6685', '廳數': '13'}, {'名稱': '國賓影城股份有限公司淡水分公司', '地址': '新北市淡水區中正路一段2號1樓(禮萊廣場)', '電話': '2626-0707', '廳數': '8'}, {'名稱': '美麗新娛樂股份有限公司新莊分公司', '地址': '新北市新莊區新北大道4段3號8~12樓', '電話': '7717-9788', '廳數': '12'}, {'名稱': '林園電影城戲院(暫時歇業中)', '地址': '新北市板橋區府中路175號3樓', '電話': '2960-5333', '廳數': '3'}, {'名稱': '華麗電影院(暫時歇業中)', '地址': '新北市板橋區府中路175號5樓', '電話': '2960-5333', '廳數': '2'}]
檔案讀取
import json
# 指定要讀取的JSON檔案的路徑
json_file_path = "data.json"
try:
# 開啟JSON檔案並解析數據
with open(json_file_path, "r") as json_file:
data = json.load(json_file)
modified_json_data = []
for item in data:
#將原資料由英文改為中文
modified_item = {
"名稱": item["name"],
"地址": item["address"],
"電話": item["tel"],
"廳數": item["number"]
}
modified_json_data.append(modified_item)
print(modified_json_data)
except FileNotFoundError:
print(f"檔案未找到: {json_file_path}")
except json.JSONDecodeError as e:
print(f"JSON解析錯誤: {e}")
except Exception as e:
print(f"發生錯誤: {e}")
今天學完讀取json檔案的方式,明天再來學習如何讀取其他格式檔案吧!
---20230927---